#pragma once
#include "Includes.h"
#include "WeaponInfo.h"
#include "Surfacedata.h"
#include "Constants.h"
#include "CUserCmd.h"
#include "Utilities.h"
#include "Entity.h"
#include "Player_Info.h"
#include "GameUtilities.h"
#include "HL2Interface.h"
#include "NoSpread.h"
#include "Trace.h"
#include "Ray.h"

class Autowall
{
public: // Methods
	void Init();
	bool GetWeaponInfo(WeaponInfo_t* weaponInfo, CBaseCombatWeapon* weapon);
	bool isHittable(SD_Tools::Vector &End, Entity* enemy, float &BestDamage);
public: // Variables
	WeaponInfo_t m_weaponInfo;
	CBaseCombatWeapon* m_weapon;
	char *m_weaponAlias;
	bool m_bIsWeaponInfoValid;
public: // Offsets
	DWORD dwLookupWeaponInfoSlot;
	DWORD dwGetFileWeaponInfoFromHandle;
	DWORD dwGetWeaponAliasById;
	DWORD dwGetBulletTypeParameters;
};

extern Autowall g_pAutowall;